<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>LiquidFun: b2Settings.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">LiquidFun
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_4ab6b4cc6a7edbff49100e9123df213f.html">Common</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">b2Settings.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;float.h&gt;</code><br/>
</div>
<p><a href="b2_settings_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structb2_version.html">b2Version</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a24cdaa0e73463ad545524b9aee142b7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24cdaa0e73463ad545524b9aee142b7b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>B2_NOT_USED</b>(x)&#160;&#160;&#160;((void)(x))</td></tr>
<tr class="separator:a24cdaa0e73463ad545524b9aee142b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3fe3791ea4d700d5cc1f8124d2edf33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3fe3791ea4d700d5cc1f8124d2edf33"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2Assert</b>(A)</td></tr>
<tr class="separator:ab3fe3791ea4d700d5cc1f8124d2edf33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0415c90facf60c6a0c71750231fd9841"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0415c90facf60c6a0c71750231fd9841"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>B2_ASSERT_ENABLED</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a0415c90facf60c6a0c71750231fd9841"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f16cb0d5a6e45e034b44e7474f3785d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f16cb0d5a6e45e034b44e7474f3785d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>B2_DEBUG_STATEMENT</b>(A)</td></tr>
<tr class="separator:a0f16cb0d5a6e45e034b44e7474f3785d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c006e377f04fb08e5c63620ed0c4fe4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c006e377f04fb08e5c63620ed0c4fe4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>B2_ARRAY_SIZE</b>(x)&#160;&#160;&#160;(sizeof(x) / sizeof((x)[0]))</td></tr>
<tr class="separator:a5c006e377f04fb08e5c63620ed0c4fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a034400dadc97431610fe4a0f38d5c1c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a034400dadc97431610fe4a0f38d5c1c7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_maxFloat</b>&#160;&#160;&#160;FLT_MAX</td></tr>
<tr class="separator:a034400dadc97431610fe4a0f38d5c1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6bc48338c82daa4598d38f8ebc6f075"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae6bc48338c82daa4598d38f8ebc6f075"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_epsilon</b>&#160;&#160;&#160;FLT_EPSILON</td></tr>
<tr class="separator:ae6bc48338c82daa4598d38f8ebc6f075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f1872f3fc3c46abc809e7f7d467eb6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f1872f3fc3c46abc809e7f7d467eb6c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_pi</b>&#160;&#160;&#160;3.14159265359f</td></tr>
<tr class="separator:a3f1872f3fc3c46abc809e7f7d467eb6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade71acda4472b5b16d6ef87e53d63e38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade71acda4472b5b16d6ef87e53d63e38"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2Inline</b>&#160;&#160;&#160;inline</td></tr>
<tr class="separator:ade71acda4472b5b16d6ef87e53d63e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab21c02d8e30f0db17645900cbf92d022"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab21c02d8e30f0db17645900cbf92d022"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>LIQUIDFUN_EXTERNAL_LANGUAGE_API</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ab21c02d8e30f0db17645900cbf92d022"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f44cc9edf711433dea2b2ec94f3c42"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#aa5f44cc9edf711433dea2b2ec94f3c42">b2_maxManifoldPoints</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:aa5f44cc9edf711433dea2b2ec94f3c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09d71ee1993bee28b5b2e6d893b41884"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a09d71ee1993bee28b5b2e6d893b41884">b2_maxPolygonVertices</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:a09d71ee1993bee28b5b2e6d893b41884"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb86e231496fdd6ac7795ce58d40c870"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#adb86e231496fdd6ac7795ce58d40c870">b2_aabbExtension</a>&#160;&#160;&#160;0.1f</td></tr>
<tr class="separator:adb86e231496fdd6ac7795ce58d40c870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d1bd1594f20601d4079bccbd0a6a03c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a7d1bd1594f20601d4079bccbd0a6a03c">b2_aabbMultiplier</a>&#160;&#160;&#160;2.0f</td></tr>
<tr class="separator:a7d1bd1594f20601d4079bccbd0a6a03c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57268ade379c5c3373d0ff558b0350cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a57268ade379c5c3373d0ff558b0350cf">b2_linearSlop</a>&#160;&#160;&#160;0.005f</td></tr>
<tr class="separator:a57268ade379c5c3373d0ff558b0350cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67810fb101bb7a7e0b3afc14845383ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a67810fb101bb7a7e0b3afc14845383ee">b2_angularSlop</a>&#160;&#160;&#160;(2.0f / 180.0f * b2_pi)</td></tr>
<tr class="separator:a67810fb101bb7a7e0b3afc14845383ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc0f934dabffb1e83e081249133ad860"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#afc0f934dabffb1e83e081249133ad860">b2_polygonRadius</a>&#160;&#160;&#160;(2.0f * b2_linearSlop)</td></tr>
<tr class="separator:afc0f934dabffb1e83e081249133ad860"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1fd56e39ab8499f344b6398b7332e55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1fd56e39ab8499f344b6398b7332e55"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#ac1fd56e39ab8499f344b6398b7332e55">b2_maxSubSteps</a>&#160;&#160;&#160;8</td></tr>
<tr class="memdesc:ac1fd56e39ab8499f344b6398b7332e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of sub-steps per contact in continuous physics simulation. <br/></td></tr>
<tr class="separator:ac1fd56e39ab8499f344b6398b7332e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad3a54bcae5f7ec0235963403c2fccc9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad3a54bcae5f7ec0235963403c2fccc9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#aad3a54bcae5f7ec0235963403c2fccc9">b2_maxTOIContacts</a>&#160;&#160;&#160;32</td></tr>
<tr class="memdesc:aad3a54bcae5f7ec0235963403c2fccc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of contacts to be handled to solve a TOI impact. <br/></td></tr>
<tr class="separator:aad3a54bcae5f7ec0235963403c2fccc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a690b448aa2dba2a1393781f8c059c22a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a690b448aa2dba2a1393781f8c059c22a">b2_velocityThreshold</a>&#160;&#160;&#160;1.0f</td></tr>
<tr class="separator:a690b448aa2dba2a1393781f8c059c22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23ab70e4809f5ee23abcd52018d5eb88"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a23ab70e4809f5ee23abcd52018d5eb88">b2_maxLinearCorrection</a>&#160;&#160;&#160;0.2f</td></tr>
<tr class="separator:a23ab70e4809f5ee23abcd52018d5eb88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a823e4f9a6fa4b9de3c97da696571400a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a823e4f9a6fa4b9de3c97da696571400a">b2_maxAngularCorrection</a>&#160;&#160;&#160;(8.0f / 180.0f * b2_pi)</td></tr>
<tr class="separator:a823e4f9a6fa4b9de3c97da696571400a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2bad257bfbafed3665df3e243ba2b52"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#af2bad257bfbafed3665df3e243ba2b52">b2_maxTranslation</a>&#160;&#160;&#160;2.0f</td></tr>
<tr class="separator:af2bad257bfbafed3665df3e243ba2b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06db101442fde26e8ffb875af5c2f588"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06db101442fde26e8ffb875af5c2f588"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_maxTranslationSquared</b>&#160;&#160;&#160;(<a class="el" href="b2_settings_8h.html#af2bad257bfbafed3665df3e243ba2b52">b2_maxTranslation</a> * <a class="el" href="b2_settings_8h.html#af2bad257bfbafed3665df3e243ba2b52">b2_maxTranslation</a>)</td></tr>
<tr class="separator:a06db101442fde26e8ffb875af5c2f588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5808c5f1e946205d8f7458101ccc698e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a5808c5f1e946205d8f7458101ccc698e">b2_maxRotation</a>&#160;&#160;&#160;(0.5f * b2_pi)</td></tr>
<tr class="separator:a5808c5f1e946205d8f7458101ccc698e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0ea425673819f24093ef7875c1025dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0ea425673819f24093ef7875c1025dd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_maxRotationSquared</b>&#160;&#160;&#160;(<a class="el" href="b2_settings_8h.html#a5808c5f1e946205d8f7458101ccc698e">b2_maxRotation</a> * <a class="el" href="b2_settings_8h.html#a5808c5f1e946205d8f7458101ccc698e">b2_maxRotation</a>)</td></tr>
<tr class="separator:ac0ea425673819f24093ef7875c1025dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88e32539e0f9e69e3832e1321eba3caa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a88e32539e0f9e69e3832e1321eba3caa">b2_baumgarte</a>&#160;&#160;&#160;0.2f</td></tr>
<tr class="separator:a88e32539e0f9e69e3832e1321eba3caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addf67cb7c89ad8a0370b488e8120a6ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="addf67cb7c89ad8a0370b488e8120a6ed"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_toiBaugarte</b>&#160;&#160;&#160;0.75f</td></tr>
<tr class="separator:addf67cb7c89ad8a0370b488e8120a6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc056d2ee984ceb388fcd38e257e71b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#adc056d2ee984ceb388fcd38e257e71b6">b2_invalidParticleIndex</a>&#160;&#160;&#160;(-1)</td></tr>
<tr class="memdesc:adc056d2ee984ceb388fcd38e257e71b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON SIMD requires 16-bit particle indices.  <a href="#adc056d2ee984ceb388fcd38e257e71b6">More...</a><br/></td></tr>
<tr class="separator:adc056d2ee984ceb388fcd38e257e71b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad61937cd7f550f6b879e221694b58a42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad61937cd7f550f6b879e221694b58a42"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_maxParticleIndex</b>&#160;&#160;&#160;0x7FFFFFFF</td></tr>
<tr class="separator:ad61937cd7f550f6b879e221694b58a42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67092aba35939215cea0213618591031"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67092aba35939215cea0213618591031"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a67092aba35939215cea0213618591031">b2_particleStride</a>&#160;&#160;&#160;0.75f</td></tr>
<tr class="memdesc:a67092aba35939215cea0213618591031"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default distance between particles, multiplied by the particle diameter. <br/></td></tr>
<tr class="separator:a67092aba35939215cea0213618591031"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ca77d20adfeafed68bb71041a68a41f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ca77d20adfeafed68bb71041a68a41f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a8ca77d20adfeafed68bb71041a68a41f">b2_minParticleWeight</a>&#160;&#160;&#160;1.0f</td></tr>
<tr class="memdesc:a8ca77d20adfeafed68bb71041a68a41f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum particle weight that produces pressure. <br/></td></tr>
<tr class="separator:a8ca77d20adfeafed68bb71041a68a41f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06b74a32a69d07543c724a728afbe906"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06b74a32a69d07543c724a728afbe906"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a06b74a32a69d07543c724a728afbe906">b2_maxParticlePressure</a>&#160;&#160;&#160;0.25f</td></tr>
<tr class="memdesc:a06b74a32a69d07543c724a728afbe906"><td class="mdescLeft">&#160;</td><td class="mdescRight">The upper limit for particle pressure. <br/></td></tr>
<tr class="separator:a06b74a32a69d07543c724a728afbe906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae727d446572abad0a53820309404fa47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae727d446572abad0a53820309404fa47"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#ae727d446572abad0a53820309404fa47">b2_maxParticleForce</a>&#160;&#160;&#160;0.5f</td></tr>
<tr class="memdesc:ae727d446572abad0a53820309404fa47"><td class="mdescLeft">&#160;</td><td class="mdescRight">The upper limit for force between particles. <br/></td></tr>
<tr class="separator:ae727d446572abad0a53820309404fa47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31415738c2d85a958b43b3086141fc85"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a31415738c2d85a958b43b3086141fc85">b2_maxTriadDistance</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a31415738c2d85a958b43b3086141fc85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a46d82b5b300a5c89badc678bd38534"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a46d82b5b300a5c89badc678bd38534"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>b2_maxTriadDistanceSquared</b>&#160;&#160;&#160;(<a class="el" href="b2_settings_8h.html#a31415738c2d85a958b43b3086141fc85">b2_maxTriadDistance</a> * <a class="el" href="b2_settings_8h.html#a31415738c2d85a958b43b3086141fc85">b2_maxTriadDistance</a>)</td></tr>
<tr class="separator:a9a46d82b5b300a5c89badc678bd38534"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70a95f8fdc7c5eb5538a06640486c150"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70a95f8fdc7c5eb5538a06640486c150"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a70a95f8fdc7c5eb5538a06640486c150">b2_minParticleSystemBufferCapacity</a>&#160;&#160;&#160;256</td></tr>
<tr class="memdesc:a70a95f8fdc7c5eb5538a06640486c150"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initial size of particle data buffers. <br/></td></tr>
<tr class="separator:a70a95f8fdc7c5eb5538a06640486c150"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45311f1895abdb7ea82a04829384d9c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45311f1895abdb7ea82a04829384d9c7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a45311f1895abdb7ea82a04829384d9c7">b2_barrierCollisionTime</a>&#160;&#160;&#160;2.5f</td></tr>
<tr class="memdesc:a45311f1895abdb7ea82a04829384d9c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time into the future that collisions against barrier particles will be detected. <br/></td></tr>
<tr class="separator:a45311f1895abdb7ea82a04829384d9c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab021adb740e4a5e1f5f7d9913ed94781"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab021adb740e4a5e1f5f7d9913ed94781"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#ab021adb740e4a5e1f5f7d9913ed94781">b2_timeToSleep</a>&#160;&#160;&#160;0.5f</td></tr>
<tr class="memdesc:ab021adb740e4a5e1f5f7d9913ed94781"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time that a body must be still before it will go to sleep. <br/></td></tr>
<tr class="separator:ab021adb740e4a5e1f5f7d9913ed94781"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d882c48142a8c73011b576e20dc6dd8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d882c48142a8c73011b576e20dc6dd8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a6d882c48142a8c73011b576e20dc6dd8">b2_linearSleepTolerance</a>&#160;&#160;&#160;0.01f</td></tr>
<tr class="memdesc:a6d882c48142a8c73011b576e20dc6dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A body cannot sleep if its linear velocity is above this tolerance. <br/></td></tr>
<tr class="separator:a6d882c48142a8c73011b576e20dc6dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a571f3e7c864aca14141b163205600eef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a571f3e7c864aca14141b163205600eef"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a571f3e7c864aca14141b163205600eef">b2_angularSleepTolerance</a>&#160;&#160;&#160;(2.0f / 180.0f * b2_pi)</td></tr>
<tr class="memdesc:a571f3e7c864aca14141b163205600eef"><td class="mdescLeft">&#160;</td><td class="mdescRight">A body cannot sleep if its angular velocity is above this tolerance. <br/></td></tr>
<tr class="separator:a571f3e7c864aca14141b163205600eef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a1b956fe1df85f3c132b21edb4e116458"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b956fe1df85f3c132b21edb4e116458"></a>
typedef signed char&#160;</td><td class="memItemRight" valign="bottom"><b>int8</b></td></tr>
<tr class="separator:a1b956fe1df85f3c132b21edb4e116458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a259fa4834387bd68627ddf37bb3ebdb9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a259fa4834387bd68627ddf37bb3ebdb9"></a>
typedef signed short&#160;</td><td class="memItemRight" valign="bottom"><b>int16</b></td></tr>
<tr class="separator:a259fa4834387bd68627ddf37bb3ebdb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43d43196463bde49cb067f5c20ab8481"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43d43196463bde49cb067f5c20ab8481"></a>
typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><b>int32</b></td></tr>
<tr class="separator:a43d43196463bde49cb067f5c20ab8481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adde6aaee8457bee49c2a92621fe22b79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adde6aaee8457bee49c2a92621fe22b79"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>uint8</b></td></tr>
<tr class="separator:adde6aaee8457bee49c2a92621fe22b79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05f6b0ae8f6a6e135b0e290c25fe0e4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05f6b0ae8f6a6e135b0e290c25fe0e4e"></a>
typedef unsigned short&#160;</td><td class="memItemRight" valign="bottom"><b>uint16</b></td></tr>
<tr class="separator:a05f6b0ae8f6a6e135b0e290c25fe0e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1134b580f8da4de94ca6b1de4d37975e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1134b580f8da4de94ca6b1de4d37975e"></a>
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>uint32</b></td></tr>
<tr class="separator:a1134b580f8da4de94ca6b1de4d37975e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacdc525d6f7bddb3ae95d5c311bd06a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacdc525d6f7bddb3ae95d5c311bd06a1"></a>
typedef float&#160;</td><td class="memItemRight" valign="bottom"><b>float32</b></td></tr>
<tr class="separator:aacdc525d6f7bddb3ae95d5c311bd06a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a232fad1b0d6dcc7c16aabde98b2e2a80"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a232fad1b0d6dcc7c16aabde98b2e2a80"></a>
typedef double&#160;</td><td class="memItemRight" valign="bottom"><b>float64</b></td></tr>
<tr class="separator:a232fad1b0d6dcc7c16aabde98b2e2a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfc3c54bd29ad5964e1c1c3ccbf89df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecfc3c54bd29ad5964e1c1c3ccbf89df"></a>
typedef long long&#160;</td><td class="memItemRight" valign="bottom"><b>int64</b></td></tr>
<tr class="separator:aecfc3c54bd29ad5964e1c1c3ccbf89df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29940ae63ec06c9998bba873e25407ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29940ae63ec06c9998bba873e25407ad"></a>
typedef unsigned long long&#160;</td><td class="memItemRight" valign="bottom"><b>uint64</b></td></tr>
<tr class="separator:a29940ae63ec06c9998bba873e25407ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac58fac80aa13e098a0e9e6c72c5179ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac58fac80aa13e098a0e9e6c72c5179ca"></a>
typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#ac58fac80aa13e098a0e9e6c72c5179ca">b2AllocFunction</a> )(int32 size, void *callbackData)</td></tr>
<tr class="memdesc:ac58fac80aa13e098a0e9e6c72c5179ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use this function to override <a class="el" href="b2_settings_8h.html#a2dca9b286e9b9d6d022055fd61534bd7" title="Implement this function to use your own memory allocator. ">b2Alloc()</a> without recompiling this library. <br/></td></tr>
<tr class="separator:ac58fac80aa13e098a0e9e6c72c5179ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c4c0e67a45d8e9b1feb096973195c2c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c4c0e67a45d8e9b1feb096973195c2c"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a7c4c0e67a45d8e9b1feb096973195c2c">b2FreeFunction</a> )(void *mem, void *callbackData)</td></tr>
<tr class="memdesc:a7c4c0e67a45d8e9b1feb096973195c2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use this function to override <a class="el" href="b2_settings_8h.html#a50f4abf5edeabd0300946edbd542e24d" title="If you implement b2Alloc, you should also implement this function. ">b2Free()</a> without recompiling this library. <br/></td></tr>
<tr class="separator:a7c4c0e67a45d8e9b1feb096973195c2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2dca9b286e9b9d6d022055fd61534bd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2dca9b286e9b9d6d022055fd61534bd7"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a2dca9b286e9b9d6d022055fd61534bd7">b2Alloc</a> (int32 size)</td></tr>
<tr class="memdesc:a2dca9b286e9b9d6d022055fd61534bd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement this function to use your own memory allocator. <br/></td></tr>
<tr class="separator:a2dca9b286e9b9d6d022055fd61534bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50f4abf5edeabd0300946edbd542e24d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50f4abf5edeabd0300946edbd542e24d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a50f4abf5edeabd0300946edbd542e24d">b2Free</a> (void *mem)</td></tr>
<tr class="memdesc:a50f4abf5edeabd0300946edbd542e24d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If you implement b2Alloc, you should also implement this function. <br/></td></tr>
<tr class="separator:a50f4abf5edeabd0300946edbd542e24d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e1c46d4c0c37382656bfb2c79e4508a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a9e1c46d4c0c37382656bfb2c79e4508a">b2SetAllocFreeCallbacks</a> (<a class="el" href="b2_settings_8h.html#ac58fac80aa13e098a0e9e6c72c5179ca">b2AllocFunction</a> allocCallback, <a class="el" href="b2_settings_8h.html#a7c4c0e67a45d8e9b1feb096973195c2c">b2FreeFunction</a> freeCallback, void *callbackData)</td></tr>
<tr class="separator:a9e1c46d4c0c37382656bfb2c79e4508a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cd45e29c4e5b126cf16b8d88c24a00e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a0cd45e29c4e5b126cf16b8d88c24a00e">b2SetNumAllocs</a> (const int32 numAllocs)</td></tr>
<tr class="separator:a0cd45e29c4e5b126cf16b8d88c24a00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60375fb093d9f8f71f2d98f9129f9858"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60375fb093d9f8f71f2d98f9129f9858"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a60375fb093d9f8f71f2d98f9129f9858">b2GetNumAllocs</a> ()</td></tr>
<tr class="memdesc:a60375fb093d9f8f71f2d98f9129f9858"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of calls to b2Alloc minus number of calls to b2Free. <br/></td></tr>
<tr class="separator:a60375fb093d9f8f71f2d98f9129f9858"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f10095d05c74eebfe535931c9061ab2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f10095d05c74eebfe535931c9061ab2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a9f10095d05c74eebfe535931c9061ab2">b2Log</a> (const char *string,...)</td></tr>
<tr class="memdesc:a9f10095d05c74eebfe535931c9061ab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging function. <br/></td></tr>
<tr class="separator:a9f10095d05c74eebfe535931c9061ab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a3a20e3b6a8b05633d911fea031f7a44f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structb2_version.html">b2Version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a3a20e3b6a8b05633d911fea031f7a44f">b2_version</a></td></tr>
<tr class="separator:a3a20e3b6a8b05633d911fea031f7a44f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d36337c300b30f6f78b9d92ab78ec76"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d36337c300b30f6f78b9d92ab78ec76"></a>
const <a class="el" href="structb2_version.html">b2Version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#a6d36337c300b30f6f78b9d92ab78ec76">b2_liquidFunVersion</a></td></tr>
<tr class="memdesc:a6d36337c300b30f6f78b9d92ab78ec76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global variable is used to identify the version of LiquidFun. <br/></td></tr>
<tr class="separator:a6d36337c300b30f6f78b9d92ab78ec76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2d708404cc84acb7e8f65de9738a9a5"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="b2_settings_8h.html#ad2d708404cc84acb7e8f65de9738a9a5">b2_liquidFunVersionString</a></td></tr>
<tr class="separator:ad2d708404cc84acb7e8f65de9738a9a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Global tuning constants based on meters-kilograms-seconds (MKS) units. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="adb86e231496fdd6ac7795ce58d40c870"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_aabbExtension&#160;&#160;&#160;0.1f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is used to fatten AABBs in the dynamic tree. This allows proxies to move by a small amount without triggering a tree adjustment. This is in meters. </p>

</div>
</div>
<a class="anchor" id="a7d1bd1594f20601d4079bccbd0a6a03c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_aabbMultiplier&#160;&#160;&#160;2.0f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is used to fatten AABBs in the dynamic tree. This is used to predict the future position based on the current displacement. This is a dimensionless multiplier. </p>

</div>
</div>
<a class="anchor" id="a67810fb101bb7a7e0b3afc14845383ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_angularSlop&#160;&#160;&#160;(2.0f / 180.0f * b2_pi)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A small angle used as a collision and constraint tolerance. Usually it is chosen to be numerically significant, but visually insignificant. </p>

</div>
</div>
<a class="anchor" id="a88e32539e0f9e69e3832e1321eba3caa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_baumgarte&#160;&#160;&#160;0.2f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This scale factor controls how fast overlap is resolved. Ideally this would be 1 so that overlap is removed in one time step. However using values close to 1 often lead to overshoot. </p>

</div>
</div>
<a class="anchor" id="adc056d2ee984ceb388fcd38e257e71b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_invalidParticleIndex&#160;&#160;&#160;(-1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>NEON SIMD requires 16-bit particle indices. </p>
<p>A symbolic constant that stands for particle allocation error. </p>

</div>
</div>
<a class="anchor" id="a57268ade379c5c3373d0ff558b0350cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_linearSlop&#160;&#160;&#160;0.005f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A small length used as a collision and constraint tolerance. Usually it is chosen to be numerically significant, but visually insignificant. </p>

</div>
</div>
<a class="anchor" id="a823e4f9a6fa4b9de3c97da696571400a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxAngularCorrection&#160;&#160;&#160;(8.0f / 180.0f * b2_pi)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum angular position correction used when solving constraints. This helps to prevent overshoot. </p>

</div>
</div>
<a class="anchor" id="a23ab70e4809f5ee23abcd52018d5eb88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxLinearCorrection&#160;&#160;&#160;0.2f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum linear position correction used when solving constraints. This helps to prevent overshoot. </p>

</div>
</div>
<a class="anchor" id="aa5f44cc9edf711433dea2b2ec94f3c42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxManifoldPoints&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum number of contact points between two convex shapes. Do not change this value. </p>

</div>
</div>
<a class="anchor" id="a09d71ee1993bee28b5b2e6d893b41884"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxPolygonVertices&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum number of vertices on a convex polygon. You cannot increase this too much because <a class="el" href="classb2_block_allocator.html">b2BlockAllocator</a> has a maximum object size. </p>

</div>
</div>
<a class="anchor" id="a5808c5f1e946205d8f7458101ccc698e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxRotation&#160;&#160;&#160;(0.5f * b2_pi)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum angular velocity of a body. This limit is very large and is used to prevent numerical problems. You shouldn't need to adjust this. </p>

</div>
</div>
<a class="anchor" id="af2bad257bfbafed3665df3e243ba2b52"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxTranslation&#160;&#160;&#160;2.0f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum linear velocity of a body. This limit is very large and is used to prevent numerical problems. You shouldn't need to adjust this. </p>

</div>
</div>
<a class="anchor" id="a31415738c2d85a958b43b3086141fc85"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_maxTriadDistance&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum distance between particles in a triad, multiplied by the particle diameter. </p>

</div>
</div>
<a class="anchor" id="afc0f934dabffb1e83e081249133ad860"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_polygonRadius&#160;&#160;&#160;(2.0f * b2_linearSlop)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The radius of the polygon/edge shape skin. This should not be modified. Making this smaller means polygons will have an insufficient buffer for continuous collision. Making it larger may create artifacts for vertex collision. </p>

</div>
</div>
<a class="anchor" id="a690b448aa2dba2a1393781f8c059c22a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define b2_velocityThreshold&#160;&#160;&#160;1.0f</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A velocity threshold for elastic collisions. Any collision with a relative linear velocity below this threshold will be treated as inelastic. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a9e1c46d4c0c37382656bfb2c79e4508a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2SetAllocFreeCallbacks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="b2_settings_8h.html#ac58fac80aa13e098a0e9e6c72c5179ca">b2AllocFunction</a>&#160;</td>
          <td class="paramname"><em>allocCallback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="b2_settings_8h.html#a7c4c0e67a45d8e9b1feb096973195c2c">b2FreeFunction</a>&#160;</td>
          <td class="paramname"><em>freeCallback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callbackData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set alloc and free callbacks to override the default behavior of using malloc() and free() for dynamic memory allocation. Set allocCallback and freeCallback to NULL to restore the default allocator (malloc / free). </p>

</div>
</div>
<a class="anchor" id="a0cd45e29c4e5b126cf16b8d88c24a00e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2SetNumAllocs </td>
          <td>(</td>
          <td class="paramtype">const int32&#160;</td>
          <td class="paramname"><em>numAllocs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the number of calls to b2Alloc minus the number of calls to b2Free. This can be used to disable the empty heap check in <a class="el" href="b2_settings_8h.html#a9e1c46d4c0c37382656bfb2c79e4508a">b2SetAllocFreeCallbacks()</a> which can be useful for testing. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ad2d708404cc84acb7e8f65de9738a9a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* b2_liquidFunVersionString</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>String which identifies the current version of LiquidFun. b2_liquidFunVersionString is used by Google developers to identify which applications uploaded to Google Play are using this library. This allows the development team at Google to determine the popularity of the library. How it works: Applications that are uploaded to the Google Play Store are scanned for this version string. We track which applications are using it to measure popularity. You are free to remove it (of course) but we would appreciate if you left it in. </p>

</div>
</div>
<a class="anchor" id="a3a20e3b6a8b05633d911fea031f7a44f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structb2_version.html">b2Version</a> b2_version</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Current version. Version of Box2D, LiquidFun is based upon. </p>

</div>
</div>
</div><!-- contents -->
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46159502-1', 'auto');
ga('create', 'UA-49880327-7', 'auto', {'name': 'liquidFunTracker'});
ga('send', 'pageview');
ga('liquidFunTracker.send', 'pageview');
</script>
</body>
</html>
